package sv.com.bolsaTrabajo.view.bean.managedbeans;

import java.util.Date;
import sv.com.bolsaTrabajo.model.dao.CategoriaFacade;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import sv.com.bolsaTrabajo.model.entities.Categoria;
import org.primefaces.context.RequestContext;
import sv.com.bolsaTrabajo.view.bean.ManejadorAccion;

/**
 *
 * @author Karina Palacios
 */
@ManagedBean
@SessionScoped
public final class CategoriaMB extends ManejadorAccion {

    @EJB
    private CategoriaFacade categoriaFacade;
    private Categoria categoria;
    private List<Categoria> categorias;

    /**
     * Constructor
     */
    public CategoriaMB() {
        limpiarCategoria();
        categoria = new Categoria();
    }

    public void limpiarCategoria() {
        setCategoria(new Categoria());
    }

    public List<Categoria> getCategorias() {
        categorias = categoriaFacade.obtenerTodos();
        return categorias;
    }

    public void guardarEntidad() {
        try {
            System.out.println("====> Ingresando a crear categoria");
            getCategoria().setFechaMod(new Date());

            if (categoria.getIdCategoria() == null) {

                categoriaFacade.crear(categoria);
                lanzarMensajeInformacion("Exito", "Categoria guardada correctamente");

            } else {
                categoriaFacade.modificar(categoria);
                lanzarMensajeInformacion("Exito", "Categoria modificada correctamente");
               
            }
            RequestContext.getCurrentInstance().update("IDFrmCategoria");
            RequestContext.getCurrentInstance().execute("WVDialogCategoria.hide();");

        } catch (Exception e) {
            lanzarMensajeError("", "Error al guardar Categoria ", e);
        }
    }

    public void modificarCategoria(Categoria modCategoria) {
        try {
            this.categoria = modCategoria;
        } catch (Exception e) {
            lanzarMensajeError("Error al actualizar datos", "No se pueden asignar los valores para Categoria", e);

        }
        RequestContext.getCurrentInstance().update("");
    }


    /**
     * ****************** Getters and Setter ********************
     */
    public CategoriaFacade getCategoriaFacade() {
        return categoriaFacade;
    }

    public void setCategoriaFacade(CategoriaFacade categoriaFacade) {
        this.categoriaFacade = categoriaFacade;
    }

    public Categoria getCategoria() {
        return categoria;
    }

    public void setCategoria(Categoria categoria) {
        this.categoria = categoria;
    }

 }
